//
//  HSYBaseViewController.h
//  高仿暴走斗图
//
//  Created by huangsongyao on 16/3/4.
//  Copyright © 2016年 huangsongyao. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "UIViewController+NavigationBarButton.h"

@interface HSYBaseViewController : UIViewController

@property (nonatomic, strong) UIColor *skinNavBarColor;
/**
 *  NAV的push动作
 *
 *  @param viewController push 的vc
 *  @param animated       是否执行动画
 */
- (void)pushToViewController:(UIViewController *)viewController animated:(BOOL)animated;

/**
 *  NVA的pop动作
 *
 *  @param animated 是否执行动画
 */
- (void)popToVCAnimated:(BOOL)animated;

/**
 *  NVA的pop root vc动作
 *
 *  @param animated 是否执行动画
 */
- (void)popToRootVCAnimated:(BOOL)animated;

/**
 *  NVA的pop vc动作，用于pop到NAV队列中的某个vc层，如果level超过了viewControllers的count，默认pop至root vc控制器
 *
 *  @param level     pop的层
 *  @param animated 是否执行动画
 *
 *  @return 返回pop 所经过的vc
 */
- (NSArray *)popToViewControllerWithLevel:(NSInteger)level animated:(BOOL)animated;

/**
 *  需找NAV控制器的某个vc控制器
 *
 *  @param className vc控制器的类名
 *
 *  @return NVA中的某个vc控制器
 */
- (UIViewController *)findNavigationControllerSubViewControllerToClassName:(NSString *)className;

/**
 *  vc控制器Dismiss动作
 *
 *  @param animated   是否执行动画
 *  @param completion 完成后执行的动作
 */
- (void)dismissToViewControllerAnimated:(BOOL)animated completion:(void (^)(void))completion;

/**
 *  rac监听状态，转为HUD提示
 *
 *  @param stateCode 状态机
 *
 *  @return HUD或者error码
 */
- (NSInteger)requestStateCodeWithStateCode:(id)stateCode;

/**
 *  获取顶栏高度（状态栏+导航栏）
 *
 *  @return 高度
 */
- (CGFloat)getTopBarHeight;



@end
